﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CondominioG1.Persistencia.NHibernate;
using CondominioG1.Dominio;

namespace CondominioG1.Negocio
{

    public class ReservaService
    {
        // Dependencias con la capa de persistencia
        public AreaDAO AreaDAO { get; set; }
        public ResidenteDAO ResidenteDAO { get; set; }
        public ReservaDAO ReservaDAO { get; set; }

        // Lógica de negocio
        public Reserva RealizarReserva(DateTime fecha, int personas, String residenteCodigo, String areaCodigo, String comentario)
        {
            Residente residente = ResidenteDAO.Obtener(residenteCodigo);
            if (residente == null)
                throw new Exception("Residente inexistente");
            Area area = AreaDAO.Obtener(areaCodigo);
            if (area == null)
                throw new Exception("Area inexistente");
            Reserva reservaACrear = new Reserva();
            reservaACrear.Fecha = fecha;
            reservaACrear.Personas = personas;
            reservaACrear.Residente = residente;
            reservaACrear.Area = area;
            reservaACrear.Comentario = comentario;
            return ReservaDAO.Crear(reservaACrear);
        }

    }
}